namespace MyWebApi.Api.ParamModel
{
    // appsettings.json 中的Token代码,因为在json中无法写注释,所以写在这
    // "tokenParameter": {

    // "secret": "123456123456123456",
    // "issuer": "Xiaopang",
    // "accessExpiration": 120,
    // "refreshExpiration": 1440

    //   }

    // Token的参数，在使用的时候会有代码提示，方便编码(映射类)
    public class TokenParameter
    {
        // secret: JWT加密的密钥。现在主流用SHA256加密，需要256位以上的密钥，unicode是16个字符以上，尽量复杂一些。密钥泄露，Token就会被破解。
        public string Secret { get; set; }
        // issuer: 签发人的名称
        public string Issuer { get; set; }
        // accessExpiration: Token的有效分钟数。过了这个时间，这个Token会过期。
        public int AccessExpiration { get; set; }
        // refreshExpiration: refreshToken的有效分钟数。过了这个时间，用户需要重新登录。
        public int RefreshExpiration { get; set; }

        // Token过期后，可以让用户重新登录认证拿Token。但这个方式会比较Low。
        // 高大上的方式是签发Token的时候，同时也签发一个refreshToken给用户。
        // 用户Token过期后，可以拿refreshToken去申请新的Token，同时刷新refreshToken。
        // 如果用户长时间未使用系统，refreshToken也过期了，才让用户重新登录认证。
    }

}